counter = 100  # 整型变量
miles = 1000.0  # 浮点型变量
name = 'bird'   # 字符串

print(counter)
print(miles)
print(name)

# a, b, c = 1, 2, 'bird'
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))

a = 111
print(isinstance(a, int))
#
# isinstance 和 type 的区别在于：

#type()不会认为子类是一种父类类型。
#isinstance()会认为子类是一种父类类型。
print('==============list===================')

list = ['abdc', 786, 2.23, 'flappybird', 70.2]
tinylist=[123, 'flappybird']
print(list)
print(list[0])
print(list[1:3])
print(list[2:])
print(tinylist*2)  # 输出两次列表
print(list+tinylist)  # 连接列表
# 1、List写在方括号之间，元素用逗号隔开。
# 2、和字符串一样，list可以被索引和切片。
# 3、List可以使用+操作符进行拼接。
# 4、List中的元素是可以改变的。
# 加号 + 是列表连接运算符，星号 * 是重复操作
print('==============tuple===================')
tuple = ('abcd', 786, 2.23, 'flappybird', 70.2)
tinytuple = (123, 'flappybird')

print(tuple)
print(tuple[0])
print(tuple[1:3])
print(tuple[2:])
print(tinytuple*2)
print(tuple+tinytuple)
# string、list和tuple都属于sequence（序列）。

# 注意：

# 1、与字符串一样，元组的元素不能修改。
# 2、元组也可以被索引和切片，方法一样。
# 3、注意构造包含0或1个元素的元组的特殊语法规则。
# 4、元组也可以使用+操作符进行拼接。

print("===============set================")
# 可以使用大括号 { } 或者 set() 函数创建集合，
# 注意：创建一个空集合必须用 set() 而不是 { }，
# 因为 { } 是用来创建一个空字典。
student = {"Tom", 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Rose' in student:
    print('Rose 在集合中')
else:
    print('Rose 不在集合中')

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a-b)  # a 和 b 的差集
print(a | b)  # a 和 b 的并集
print(a & b)  # a 和 b 的交集
print(a ^ b)  # a 和 b中不同时存在的元素
'''
列表是有序的对象集合，字典是无序的对象集合。两者之间的区别在于：字典当中的元素是通过键来存取的，而不是通过偏移存取。

字典是一种映射类型，字典用"{ }"标识，它是一个无序的键(key) : 值(value)对集合。

键(key)必须使用不可变类型。

在同一个字典中，键(key)必须是唯一的。
'''
print('============dict字典===============')
dict2={}
dict2['one'] = "1 - 菜鸟教程"
dict2[2] = '2 - 菜鸟工具'
tinydict = {'name': 'flappybird', 'code': 1, 'site': 'www.flappybird.com'}

print(dict2['one'])  # 输出键为 'one' 的值
print(dict2[2])           # 输出键为 2 的值
print(tinydict)          # 输出完整的字典
print(tinydict.keys())   # 输出所有键
print(tinydict.values())  # 输出所有值
# 构造函数 dict() 可以直接从键值对序列中构建字典如下：
dict3=dict([('flappybird', 1), ('Google', 2), ('Taobao', 3)])
print(dict3.keys())